home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2000 Spring / Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).7z / Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).bin / F2JW / trans / ideum.cpp < prev    next >
C/C++ Source or Header  |  1999-08-22  |  2KB  |  77 lines

  1. //
  2. // 熟語に関することろ
  3. //
  4. #include "stdafx.h"
  5.  
  6. #include    "f2j.h"
  7. #include    "myprot.h"
  8.  
  9. CMP_TOKEN    pat_QuelqueChose[] = {
  10.     CMP_TOKEN( FR_PART_ADJECTIVE_GENERAL,    "quelque"),
  11.     CMP_TOKEN( FR_PART_NOUN_GENERAL,        "chose"),
  12.     CMP_TOKEN( FR_PART_NONE)
  13. };
  14.  
  15. CMP_TOKEN    pat_LesUns[] = {
  16.     CMP_TOKEN( FR_PART_ARTICLE_DEFINIT,        "les"),
  17.     CMP_TOKEN( FR_PART_NUMETRIC_NUMBER,        "uns"),
  18.     CMP_TOKEN( FR_PART_NONE)
  19. };
  20.  
  21. CMP_TOKEN    pat_PasUn[] = {
  22.     CMP_TOKEN( FR_PART_ADVERB_PAS,            "pas"),
  23.     CMP_TOKEN( FR_PART_NUMETRIC_NUMBER,        "un"),
  24.     CMP_TOKEN( FR_PART_NONE)
  25. };
  26.  
  27. JP_PRONOUN    jp_QuelqueChose[] = {
  28.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  29.         JP_PROP_ALL,    JP_PROP_NONE,
  30.         NULL,
  31.         "なにか",    JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  32.         FR_ATTRIB_IL_ELLE,    JP_PROP_THING,    JP_UNIT_NONE
  33.     )
  34. };
  35.  
  36.     
  37. JP_PRONOUN    jp_PasUn[] = {
  38.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  39.         JP_PROP_ALL,    JP_PROP_NONE,
  40.         NULL,
  41.         "誰",                JP_EMPHASIS_MO,    FR_PART_NOUN_INDEFINIT,
  42.         FR_ATTRIB_IL_ELLE,    JP_PROP_HUMAN,    JP_UNIT_HITO
  43.     )
  44. };
  45.  
  46. // 目的語代名詞
  47. PRONOUN    dic_QuelqueChose[] = {
  48.     { "l'",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE, JPPRONOUN_DIC(jp_QuelqueChose)    },
  49.     { "l'",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE, JPPRONOUN_DIC(jp_PasUn)            },
  50. };
  51.  
  52. void
  53. Process_QuelqueChose(TOKEN *start)
  54. {
  55.     TOKEN    *p;
  56.  
  57.     for(p = start; p; p = p->next) {
  58.         if(IsPatternMatch(pat_QuelqueChose, p)) {
  59.             DisconnectTOKEN(start, p->next);
  60.             ChangeToPronoun(p, dic_QuelqueChose);
  61.         } else if(IsPatternMatch(pat_PasUn, p)
  62.         // Elle n'est pas un professeur.
  63.         && SearchToken(JP_PROP_NEGATIVE, start, p) == NULL) {
  64.             DisconnectTOKEN(start, p->next);
  65.             if(p->next 
  66.             && IsObjectMatch(p->next, FR_PART_NOUN_ALL)) {
  67.                 ChangeToAdverb(p, "tout");
  68.                 p->jpProp |= JP_PROP_NEGATIVE;
  69.                 AttachAdverb(start, p->next, p);
  70.             } else {
  71.                 ChangeToPronoun(p, &dic_QuelqueChose[1]);
  72.             }
  73.         }
  74.     }
  75. }
  76.  
  77.